# 函数input() 让程序暂停运行，等待用户输入一些文本。获取用户输入后，Python将其赋给一个变量，以方便你使用。
# 例如，下面的程序让用户输入一些文本，再将这些文本呈现给用户：

message = input("Tell me something, and I will repeat it back to you:")
print(message)
# 注意 　Sublime Text等众多编辑器不能运行提示用户输入的程序。
# 你可以使用Sublime Text来编写提示用户输入的程序，但必须从终端运行它们。
# 也可以通过安装sublimetextREPL插件后在tools->sublimeREPL中选择python进行运行


# 每当使用函数input() 时，都应指定清晰易懂的提示，准确地指出
# 希望用户提供什么样的信息——指出用户应该输入何种信息的任何提示都行，如下所示
name = input("Please enter your name: ")
print(f"\nHello, {name}!")
# 通过在提示末尾（这里是冒号后面）包含一个空格，可将提示与用户输入分开，让用户清楚地知道其输入始于何处

# 有时候，提示可能超过一行。例如，你可能需要指出获取特定输入的原因。
# 在这种情况下，可将提示赋给一个变量，再将该变量传递给函数input() 。
# 这样，即便提示超过一行，input() 语句也会非常清晰
prompt = "If you tell us who you are, we can personalize the messages you see."
prompt += "\nWhat is your first name? "

name = input(prompt)
print(f"\nHello, {name}!")
# 本例演示了一种创建多行字符串的方式。第一行将消息的前半部分赋给变量prompt 中。
# 在第二行中，运算符+= 在前面赋给变量prompt 的字符串末尾附加一个字符串。
# 最终的提示占据两行，且问号后面有一个空格，这也是为了使其更加清晰

# 使用int() 来获取数值输入
# 使用函数input() 时，Python将用户输入解读为字符串。
# 请看下面让用户输入年龄的解释器会话
age = input("How old are you? ")
print(age)
# 用户输入数21，但我们请求Python提供变量age 的值时，它返回的是'21' ——用户输入数值的字符串表示。
# 我们怎么知道Python将输入解读成了字符串呢？因为这个数用引号括起了。
# 如果只想打印输入，这一点问题都没有；但如果试图将输入作为数来使用，就会引发错误

# age = input("How old are you? ")
# age >= 18
# 试图将输入用于数值比较时，Python会引发错误，因为它无法将字符串和整数进行比较：不能将赋给age 的字符串'21' 与数值18 进行比较

# 为解决这个问题，可使用函数int() ，它让Python将输入视为数
# 值。函数int() 将数的字符串表示转换为数值表示，如下所示：
age = input("How old are you? ")
age = int(age)
age >= 18
# 本例中，用户根据提示输入21 后，Python将这个数解读为字符串，但随后int() 将这个字符串转换成了数值表示。
# 这样Python就能运行条件测试了：将变量age （它现在表示的是数值21）同18 进行比较，看它是否大于或等于18。测试结果为True

# 下面的程序，判断一个人是否满足坐过山车的身高要求：
height = input("How tall are you, in inches? ")
height = int(height)

if height >= 48:
	print("\nYou're tall enough to ride!")
else:
	print("\nYou'll be able to ride when you're a little older.")

# 在此程序中，为何可以将height 同48 进行比较呢？因为在比较前，height = int(height) 将输入转换成了数值表示。
# 如果输入的数大于或等于48，就指出用户满足身高条件
# 将数值输入用于计算和比较前，务必将其转换为数值表示


# 求模运算符
# 处理数值信息时，求模运算符 （%）是个很有用的工具，它将两个数相除并返回余数
# 4 % 3	# result:1
# 7 % 3 # result:1
# 求模运算符不会指出一个数是另一个数的多少倍，只指出余数是多少。
# 如果一个数可被另一个数整除，余数就为0，因此求模运算将返回0。
# 可利用这一点来判断一个数是奇数还是偶数
number = input("Enter a number,  and I'll tell you if it's even or odd: ")
number = int(number)

if number % 2 == 0:
	print(f"\nThe number {number} is even.")
else:
	print(f"\nThe number {number} is odd.")


